﻿
using Factory.MasterData.WorkStations;

using System.IO;
using System.Threading.Tasks;
using System;
using IronBarCode;
using VOL.WebApi;


namespace Factory.Common
{
    /// <summary>
    /// 生成二维码
    /// </summary>
    public class QRCodeHelper
    {
        /// <summary>
        /// 生成二维码
        /// </summary>
        /// <param name="imge">传入的参数</param>
        /// <returns>返回受影响行数</returns>
        public static string CreateQRCode(string imge)
        {
            // 生成二维码
            GeneratedBarcode barcode = QRCodeWriter.CreateQrCode(imge);
            //获取当前目录
            var path = Environment.CurrentDirectory + "\\wwwroot\\qrcode";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            // 生成唯一的文件名
            string uniqueFileName = $"qrcode_{DateTime.Now:yyyyMMdd_HHmmss}_{Guid.NewGuid()}.jpg";

            string filePath = Path.Combine(path, uniqueFileName);
            barcode.SaveAsPng(filePath);
            // 保存二维码为PNG文件

            // 构建图像URL
            string imageUrl = $"https://localhost:44376/{uniqueFileName}";

            //string url= QiNiu.QiNiuUploadFile(imageUrl); // 上传到七牛云


            // 将二维码信息和其他数据保存到数据库
            return imageUrl;
        }



        /// <summary>
        /// 修改二维码
        /// </summary>
        /// <param name="imge">传入的参数</param>
        /// <returns>返回受影响行数</returns>
        public string UpdateQRCode(string imge)
        {
            QiNiu.DeleteTheLocal(imge);
            //QiNiu.QiNiuDeleteFile(generateQRCode.Image); // 删除原来的二维码

            // 编码为Base64字符串
            string base64Encoded = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(imge));

            // 生成二维码
            GeneratedBarcode barcode = QRCodeWriter.CreateQrCode(base64Encoded);
            //获取当前目录
            var path = Environment.CurrentDirectory + "\\wwwroot\\qrcode";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            // 生成唯一的文件名
            string uniqueFileName = $"qrcode_{DateTime.Now:yyyyMMdd_HHmmss}_{Guid.NewGuid()}.jpg";

            string filePath = Path.Combine(path, uniqueFileName);
            barcode.SaveAsPng(filePath);
            // 保存二维码为PNG文件

            // 构建图像URL
            string imageUrl = $"https://localhost:44376/{uniqueFileName}";

            //string url= QiNiu.QiNiuUploadFile(imageUrl); // 上传到七牛云

            // 将二维码信息和其他数据保存到数据库
            return imageUrl;
        }












    }
}
